package br.com.mobimenu.model.impl;

import java.util.Calendar;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "funcionario")
public class Funcionario extends EntidadeGeneric{

	private static final long serialVersionUID = 7846217923605380368L;

	@Basic
	@Column(length = 100)
	private String nome;

	@Basic
	@Column(length = 100)
	private String sobrenome;

	@Basic
	@Column(length = 100)
	private String matricula;

	@Temporal(TemporalType.TIMESTAMP)
	private Calendar datanascimento;

	@Enumerated(EnumType.STRING)
	private SexoEnum sexo;

	@Enumerated(EnumType.STRING)
	private EstadoCivilEnum estadoCivil;

	@Enumerated(EnumType.STRING)
	private PaisEnum nacionalidade;

	@ManyToOne
	@JoinColumn(name = "cargo_id")
	private Cargo cargo;

	@Embedded
	private Endereco endereco;

	public Funcionario() {

	}

	public Cargo getCargo() {
		return this.cargo;
	}

	public Calendar getDatanascimento() {
		return this.datanascimento;
	}

	public Endereco getEndereco() {
		return this.endereco;
	}

	public EstadoCivilEnum getEstadoCivil() {
		return this.estadoCivil;
	}

	public String getMatricula() {
		return this.matricula;
	}

	public PaisEnum getNacionalidade() {
		return this.nacionalidade;
	}

	public String getNome() {
		return this.nome;
	}

	public SexoEnum getSexo() {
		return this.sexo;
	}

	public String getSobrenome() {
		return this.sobrenome;
	}

	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	public void setDatanascimento(Calendar datanascimento) {
		this.datanascimento = datanascimento;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public void setEstadoCivil(EstadoCivilEnum estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public void setNacionalidade(PaisEnum nacionalidade) {
		this.nacionalidade = nacionalidade;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public void setSexo(SexoEnum sexo) {
		this.sexo = sexo;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}

}
